Skip to content

picogame: enable on pimoroni_picosystem - #11359

Merged
tannewt merged 1 commit into
adafruit:mainfrom
MakerClassCZ:pg-picosystem
Sep 15, 2026
Merged

tannewt merged 1 commit into
adafruit:mainfrom
MakerClassCZ:pg-picosystem

Conversation

@lynt-smitka

Copy link
Copy Markdown

Enables picogame on pimoroni_picosystem: a 240x240 ST7789 over four-wire SPI, buttons and audio, which picogame's fast display path drives as it comes.

It does not fit at -O3: the firmware is at 95.3% of the 1020 KB partition and the engine needs another 50 KB. It builds at -O2 with five loop passes, which leaves 140 KB free and measures within 1% of -O3 on this M0+.

The board has the 240x240 ST7789 over four-wire SPI that picogame's fast
display path drives, plus the buttons and audio a game needs.

It does not fit at -O3: the firmware is at 95.3% of the 1020 KB partition
and the engine needs another 50 KB. At -O2 with the loop passes it keeps
140 KB free, within 1% of -O3 on this M0+.
@dhalbert

Copy link
Copy Markdown
Collaborator

This should be subsumed by the widened #11358, right?

@lynt-smitka

Copy link
Copy Markdown
Author

There are two things:
a) optimization flags that free up flash memory
b) enabling picogame (requires free flash memory on pico_w)

So far, I've only enabled picogame on select RP2040 boards, but if you're okay with enabling it everywhere (which would make me happy 🙂), then we can do all of this in #11358

@dhalbert

Copy link
Copy Markdown
Collaborator

Did @tannewt suggest turning it on only for certain boards? Maybe I missed such a discussion. If so the below is not correct.

Yes, I did mean that we could enable for all of RP2040, and for all of RP2350, except for the boards where it really doesn't fit, or doesn't make any sense. Some boards can't have an appropriate display due to lack of pins (though a precise audit on those is not so necesasry0, and some boards have a lot of frozen libraries due to choices by the manufacturer.

So you could enable it on for all RP2xxx in mpconfigport.mk, change the OPTIMIZATION_FLAGS as appropriate in the RP2040/RP2350 conditional arms in that file, and turn it off as needed for the boards where it will never fit. Does this make sense?

@tannewt

tannewt commented Sep 14, 2026

Copy link
Copy Markdown
Member

Did @tannewt suggest turning it on only for certain boards?

Ya, I did. It is quite large to go everywhere. IMO I'd rather have it where we think folks will actually use it.

@dhalbert

Copy link
Copy Markdown
Collaborator

IMO I'd rather have it where we think folks will actually use it.

OK, I'll withdraw what I said, but as to which boards are good, I think you have a better sense of that. But it might include plain Adafruit Feather RP2040 and Feather RP2350, because they can be used with the display Featherwings.

@tannewt tannewt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, thanks!

@tannewt
tannewt added this pull request to the merge queue Sep 14, 2026
Merged via the queue into adafruit:main with commit d90dd8c Sep 15, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants